package com.leyou.item.service.base;


import tk.mybatis.mapper.entity.Example;

import java.util.List;

/**
 * 简单的CRUD操作
 * @author linzx
 * @date 2020/3/24
 */

public interface BaseService<T>  {

    /**
     * 查询所有
     * @return
     */
    public List<T> selectAll();

    /**
     * 根据非空字段查询
     * @param record
     * @return
     */
    public List<T> select(T record);

    /**
     * 根据主键查
     * @param key
     * @return
     */
    public T selectByPrimaryKey(Object key) ;

    /**
     * 根据条件查询
     * @param example
     * @return
     */
    List<T> selectByExample(Example example);

    /**
     * 根据ids查
     * @param idList
     * @return
     */
    public List<T> selectByIdList(List<Long> idList);

    /**
     * 根据主键更新非空字段
     * @param record
     * @return
     */
    public int updateByPrimaryKeySelective(T record);

    /**
     * 根据ids删除
     * @param idList
     * @return
     */
    public int deleteByIdList(List<Long> idList);

    /**
     * 根据主键删除
     * @param key
     * @return
     */
    public int deleteByPrimaryKey(Object key);

    /**
     * 多条添加
     * @param recordList
     * @return
     */
    public int insertList(List<T> recordList);

    /**
     * 单条添加
     * @param record
     * @return
     */
    public int insertSelective(T record);

    /**
     * 根据非空字段删除
     * @param record
     * @return
     */
    public int delete(T record) ;


}
